package com.cskaoyan.javase.object._5finalize;

import java.util.Scanner;

/**
 * finalize方法释放系统资源是不合理的操作
 * Java对象占用系统资源的释放,必须全部手动完成.
 *
 * @since 16:07
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // new Student();
        // 通知GC进行垃圾回收
        // System.gc();

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        System.out.println(sc.nextLine());
        // 用完了要及时释放对象所占用的系统资源
        sc.close();
        // 关掉了以后对象不可用了
        System.out.println(sc.nextLine());
    }
}

class Student {
    /*
        finalize方法也会在对象被销毁后,主动执行
        程序员可以把释放资源的代码写在里面,会随着对象销毁主动执行,释放资源
     */
    @Override
    protected void finalize() throws Throwable {
        System.out.println("模拟释放资源!");
    }
}